/**       
 * @{#} GenericObjectPoolMBean.java Create on 2012-3-29 下午2:33:55       
 *       
 * Copyright (c) 2012 by able.       
 */
package __javable.core.util.pool.impl;

/** 
 *  
 * 
 * @history 
 * <PRE> 
 * --------------------------------------------------------- 
 * VERSION       DATE            BY       CHANGE/COMMENT 
 * --------------------------------------------------------- 
 * 1.0           2012-3-29      able         create 
 * --------------------------------------------------------- 
 * </PRE> 
 * 
 */
public interface GenericObjectPoolMBean {
	
	// Expose standard attributes via JMX
    boolean getBlockWhenExhausted();
    boolean getLifo();
    int getMaxIdle();
    int getMaxTotal();
    long getMaxWait();
    long getMinEvictableIdleTimeMillis();
    int getMinIdle();
    int getNumActive();
    int getNumIdle();
    int getNumTestsPerEvictionRun();
    boolean getTestOnBorrow();
    boolean getTestOnReturn();
    boolean getTestWhileIdle();
    long getTimeBetweenEvictionRunsMillis();
    boolean isClosed();
    
    // JMX specific attributes
    long getBorrowedCount();
    long getReturnedCount();
    long getCreatedCount();
    long getDestroyedCount();
    long getDestroyedByEvictorCount();
    long getDestroyedByBorrowValidationCount();
    long getMeanActiveTimeMillis();
    long getMeanIdleTimeMillis();
    long getMeanBorrowWaitTimeMillis();
    long getMaxBorrowWaitTimeMillis();
}
